package cm.project;

import java.io.File;

public class Test1 {
    public static void main(String[] args) {
        //创建一个File对象
        File file = new File("d:/bbb");
        long fileSize = getFileSize(file);
        System.out.println("您查询的"+file+"文件夹下的所有文件和子文件大小为"+(fileSize/1024/1024)+"MB");
    }

    public static long getFileSize(File file) {
        //判断文件夹存在

        if (file.exists() && file.isDirectory()) {//文件夹存在
            //获取文件夹的文件的集合
            //创建一个数组
            File[] files = file.listFiles();
            //遍历数组
            long count = 0;
            for (File f : files) {
                //判断是否文件，如果是文件计算文件大小
                if (f.isFile()) {
                    count += f.length();

                } else {
                    //如果是文件夹，用递归方式计算文件夹的大小
                    count += getFileSize(new File(f.toString()));
                }
            }
            return count;
        }else {
            System.out.println("文件夹有误");
            return 0;
        }
    }
}
